public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }

    /**
     * 寻找旋转排序数组中的最小值
     * @param nums
     * @return
     */
    public static int findMin(int[] nums) {
        int n=nums.length;
        int left=0,right=nums.length-1;
        while(left<right){
            int mid=left+(right-left)/2;
            if(nums[mid]<nums[n-1]){
                right=mid;
            }else{
                left=mid+1;
            }
        }
        return nums[left];
    }
    /**
     * 寻找峰值
     * @param nums
     * @return
     */
    public int findPeakElement(int[] nums) {
        int left=0,right=nums.length-1;
        while(left<right){
            int mid=left+(right-left)/2;
            if(nums[mid]>nums[mid+1]){
                right=mid;
            }else{
                left=mid+1;
            }
        }
        return left;
    }
    /**
     * 山脉数组的峰顶索引
     * @param arr
     * @return
     */
    public static int peakIndexInMountainArray(int[] arr) {
        int left=1,right=arr.length-2;
        while(left<right){
            int mid=left+(right-left+1)/2;
            if(arr[mid]>arr[mid-1]) left=mid;
            else right=mid-1;
        }
        return left;
    }
}